package exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class ExceptionTypes {
    public static void main(String[] args) {
        // 1. 非受检异常（RuntimeException）- 编译时无需处理
        String str = null;
        // str.length(); // 会抛出NullPointerException

        // 2. 受检异常 - 编译时必须处理
        try {
            // FileNotFoundException是受检异常
            FileInputStream fis = new FileInputStream("nonexistent.txt");
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到: " + e.getMessage());
        }

        // 3. 方法声明抛出受检异常
        try {
            readFile("test.txt");
        } catch (FileNotFoundException e) {
            System.out.println("处理方法抛出的异常: " + e.getMessage());
        }
    }

    // 声明方法可能抛出的异常
    public static void readFile(String filename) throws FileNotFoundException {
        // 如果文件不存在，会抛出FileNotFoundException
        new FileInputStream(filename);
    }
}
